package com.company.剑指offer每日刷题.专项版;

import java.util.Arrays;

/**
 *     //将一维数组转变成二维数组
 * */
public class Construct2DArray {
    public static void main(String[] args) {
        Construct2DArray obj = new Construct2DArray();
        int original [] = new int[]{3};
        int[][] ints = obj.construct2DArray(original, 1, 2);
        for(int [] o:ints){
            System.out.println(Arrays.toString(o));

        }

    }
    /**
     * 给你一个下标从 0开始的一维整数数组original和两个整数m和n。你需要使用original中所有元素创建一个m行n列的二维数组。
     * original中下标从 0到 n - 1（都 包含 ）的元素构成二维数组的第一行，下标从 n到 2 * n - 1（都 包含）的元素构成二维数组的第二行，依此类推。
     * 请你根据上述过程返回一个m x n的二维数组。如果无法构成这样的二维数组，请你返回一个空的二维数组。
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/convert-1d-array-into-2d-array
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     * */
    public int[][] construct2DArray(int[] original, int m, int n) {
        if(original.length != m*n){
            return new int[0][0];
        }
        int res[][] = new int[m][n];
        for(int i=0;i<original.length;i++){
            res[i/n][i%n] = original[i];
        }
        return res;
    }

}
